# 编译器设置
CXX := g++
CXXFLAGS := -Wall -g -std=c++11
LDFLAGS := -llog4cpp

# 获取当前目录下所有cpp文件
SOURCES := $(wildcard *.cpp)
# 生成对应的目标文件列表
OBJECTS := $(SOURCES:.cpp=.o)
# 最终可执行文件名
EXECUTABLE := a.out

# 默认目标：编译可执行文件
all: $(EXECUTABLE)

# 链接所有目标文件生成可执行文件
$(EXECUTABLE): $(OBJECTS)
	$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)

# 模式规则：编译每个cpp文件到目标文件
%.o: %.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

# 清理生成的文件
clean:
	rm -f $(OBJECTS) $(EXECUTABLE)

# 声明伪目标
.PHONY: all clean
